A printer which receives a print job transmitted from an external apparatus such as a host computer and performs print processing, is generally well known. The print job received by the printer of this type includes various types of data. For example, the data received as the print job may be command data designating the resolution, or image data to be developed into an image. Therefore, when the printer performs processing of the print job transmitted from the external apparatus, such as the host computer, first, the printer needs to discriminate the type of received data. Further, the printer needs to discriminate the type of received data at a high speed in order to improve the throughput in the printer. The high speed discrimination of the type of received data is also essential for promptly responding to an inquiry about the printing state.
As a method for discriminating what the received data is, there is disclosed a method in Japanese Patent Laid-Open No. 11-301040, in which once the job start is detected, the received data is interpreted byte by byte to identify what the received data is, until the job end is detected. Also, there is disclosed a method in Japanese Patent Laid-Open No. 2000-135820 in which the type of data is determined per a packet.
However, in the method as disclosed in the Japanese Patent Laid-Open No. 11-301040, a processor (CPU) which performs overall control of the printer, determines the type of data per a byte in accordance with incorporated program codes, so that the processing load of CPU is increased. Even when the type of data is determined per a packet as disclosed in Japanese Patent Laid-Open No. 2000-135820, the discrimination processing is still performed by the CPU, so that the processing load of CPU is also increased. The processing time that the CPU takes to determine the type of received data, that depends on the performance of the CPU, may become about several milliseconds. For this reason, the determination processing of the type of data performed by the CPU affects the processing time of the print job as a whole.
The processing time can be reduced to some extent by increasing the speed of CPU, but which generally causes an increase of the cost. The so-called host base printer which receives a print job from an external host computer and performs printing, is strongly required to be low cost. Thus, an inexpensive CPU is used for such printer, which is a design requirement. For this reason, in the host base printer, the solution to realize the processing time reduction by using an expensive and high-speed CPU is impractical.
Further, a method for increasing the amount of data sent by one packet may be considered in order to reduce the time for determining the type of data. This is because the number of determinations as to the type of data can be reduced as the amount of data per one packet is increased. However, the increase in the amount of data per one packet causes an increase in the capacity required for the FIFO memory for storing the packet, which also becomes a hindrance to the cost reduction. For example, in order to maintain the low cost, the capacity of the FIFO memory is preferably reduced to for example about one several tenth of the amount of memory corresponding to one page. However, the number of determination of the type of data cannot be sufficiently reduced by such capacity of the FIFO memory.
As described above, there is a problem to be solved in order to realize a printer which is low cost and capable of performing data processing at a high speed. That is, although a printer which is low cost and capable of performing data processing at a high speed is demanded, an effective measure to realize the demand has not yet been found.